package com.example.jsoup.kuang.question.utils;

import com.alibaba.fastjson.JSONObject;
import com.example.jsoup.kuang.question.utilsPlus.QuestionBankPageDetailDataListUtil;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * Created by HMF on 2021/10/14 23:36
 */
public class SpiderMainTest {

    public static void main(String[] args) throws Exception {
//        List<Map<String, String>> pageDetailList = SpiderMainTest.getPageDetailList(2, 1);
//        String strJson = JSONObject.toJSON(pageDetailList).toString();  // List 转 Json  /////////////////////

        String pageDetailListJson = SpiderMainTest.getPageDetailListReturnString(1, 1);


        System.out.println("\n\n 测试数据啦啦啦啦：：：：\n\n" + pageDetailListJson);
    }

    /**
     * 爬取列表的每一页详细数据
     *
     * @param demand_type 【---人才需求 demand_type=1---】、【---技术需求 demand_type=2---】、【---服务需求 demand_type=3---】
     * @param pageIndex   【---页码 从 1 开始，需要循环递增1传入该值，获取下一页的数据---】
     * @return 返回 Json 格式的 详情页数据 列表 字符串
     * @throws Exception
     */
    public static String getPageDetailListReturnString(int demand_type, int pageIndex) throws Exception {

        List<Map<String, String>> pageDetailDataList = new ArrayList<>();

        // 列表 每个元素 包含 id 和 url
//        List<Map<String, String>> idAndUrlList = NeedListUtil.getNeedListReturnMapList(3, 1);
        List<Map<String, String>> idAndUrlList = NeedListUtil.getNeedListReturnMapList(demand_type, pageIndex);


        if (demand_type == 1) { /////////// 人才需求  ///////////

            for (Map<String, String> idAndUrl : idAndUrlList) {
                // 这里返回的就是每页的详细数据
                Map<String, String> needDetail = QuestionBankPageDetailDataListUtil.getTalentNeedDetail(idAndUrl);
                pageDetailDataList.add(needDetail);
            }

        } else if (demand_type == 2) {  //////////// 技术需求  ///////////

            for (Map<String, String> idAndUrl : idAndUrlList) {
                // 这里返回的就是每页的详细数据
                Map<String, String> needDetail = NeedDetailUtil.getTechnologyAndServiceNeedDetail(idAndUrl, 1);
                pageDetailDataList.add(needDetail);
            }

        } else if (demand_type == 3) { //////////// 服务需求  ///////////

            for (Map<String, String> idAndUrl : idAndUrlList) {
                // 这里返回的就是每页的详细数据
                Map<String, String> needDetail = NeedDetailUtil.getTechnologyAndServiceNeedDetail(idAndUrl, 2);
                pageDetailDataList.add(needDetail);
            }
        }

        return JSONObject.toJSON(pageDetailDataList).toString();
    }

    /**
     * 爬取列表的每一页详细数据
     *
     * @param demand_type 【---人才需求 demand_type=1---】、【---技术需求 demand_type=2---】、【---服务需求 demand_type=3---】
     * @param pageIndex   【---页码 从 1 开始，需要循环递增1传入该值，获取下一页的数据---】
     * @return 返回 List 格式的 详情页数据 列表 数据
     * @throws Exception
     */
    public static List<Map<String, String>> getPageDetailListReturnList(int demand_type, int pageIndex) throws Exception {

        List<Map<String, String>> pageDetailDataList = new ArrayList<>();

        // 列表 每个元素 包含 id 和 url
//        List<Map<String, String>> idAndUrlList = NeedListUtil.getNeedListReturnMapList(3, 1);
        List<Map<String, String>> idAndUrlList = NeedListUtil.getNeedListReturnMapList(demand_type, pageIndex);


        if (demand_type == 1) { /////////// 人才需求  ///////////
            for (Map<String, String> idAndUrl : idAndUrlList) {
                // TODo 遍历获取人才需求列表数据详情
            }
            // TODo
            // 先返回 null 放着，后面再修改
            pageDetailDataList = null;

        } else if (demand_type == 2) {  //////////// 技术需求  ///////////

            for (Map<String, String> idAndUrl : idAndUrlList) {
                // 这里返回的就是每页的详细数据
                Map<String, String> needDetail = NeedDetailUtil.getTechnologyAndServiceNeedDetail(idAndUrl, 1);
                pageDetailDataList.add(needDetail);
            }

        } else if (demand_type == 3) { //////////// 服务需求  ///////////

            for (Map<String, String> idAndUrl : idAndUrlList) {
                // 这里返回的就是每页的详细数据
                Map<String, String> needDetail = NeedDetailUtil.getTechnologyAndServiceNeedDetail(idAndUrl, 2);
                pageDetailDataList.add(needDetail);
            }
        }

        return pageDetailDataList;
    }
}
